Electronic devices of various kinds are well known. Increasingly, electronic devices like mobile phones or tablet computers are being designed to communicate with other electronic devices to exchange information. One such approach includes tethering two devices together with a connector such as a universal serial bus (USB) wire. At the same time, more and more systems are multi-power-supply systems. The devices in the systems have to communicate with each other. For example a CPU with one power supply communicates with a peripheral device with the other power supply in the same system.
When two mobile or battery-based electronic devices are wired together for communication, a buffer is needed to account for each device's potentially operating at a different voltage level based on the individual device's battery's charge. To allow for data transmission between two such devices, circuitry is used to translate the sending device's data signal into a data signal that is safe to receive by the receiving device. Such translation devices typically also sense data transmission to stop conflicting traffic from the receiving device to the sending device during reception of data at the receiving device.
One known approach to handling this application is illustrated in FIG. 1, which illustrates a circuit 100 connected at a communication device B that is connected to a separate communication device A. The circuit 100 receives signals at an input line 105 that is connected to the communication device A. A level shifter 107 outputs a signal A1 to analog logic devices 110 and 112. The analog logic devices 110 and 112 also receive feedback regarding outbound data communications from the communication device B via a line 115. The analog logic devices 110 and 112 operate in response to the signals received on the line 105 from communication device A and the line 115 from communication device B to provide output signals to trigger elements 120 and 125. The trigger elements 120 and 125 also receive signals from another set of analog logic devices 130 and 132. The second set of analog logic devices 130 and 132 receives signals from a feedback line from communication device A 135 and a feedback line from communication device B 137. The second set of analog logic devices 130 and 132 processes the signals from the feedback lines and provide outputs to the trigger elements 120 and 125. The trigger elements 120 and 125 provide up and down signals to switches 140 and 142. The switches 140 and 142, in turn, charge the capacitor 150 or discharge the capacitor 150, which charges a line 160 connected to the receiving device B. The receiving device B reads the signals on line 160 to determine the data being received from sending device A.
In the application where two communication devices are connected by a wire for communication, it is advantageous to have simple circuitry that can operate and handle communications in high power supply and low data rate requirement situation, which refers to a loss of signal due to the operation of the elements of the circuit. Although the circuit in FIG. 1 largely accomplishes the goal to communicate between the two devices with different power supplies, the circuit 100 does so through the use of a stacked set of transistors to effect the operation of the analog logic circuit elements 110, 112, 130, and 132. The stack of transistor elements in circuit 100 causes a large delay in a low power supply situation in translating the data from communication device A to communication device B because of the need of the different data between the input side and the output side, which is especially difficult in low temperature situations or where the data is being sent with signals not having an especially sharp corner. The delay causes the low data rate. The circuit overall must respect this delay because data changes during processing of the signals can result in data error and possibly damage the circuitry because of potentially large currents being produced in the circuitry during data change in the midst of previous signal processing if the data rate is high.